package com.odontosis.view.parametros;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import com.odontosis.entidade.GrupoUsuario;
import com.odontosis.entidade.TipoImpressao;
import com.odontosis.entidade.Usuario;
import com.odontosis.service.UsuarioService;
import com.odontosis.util.StringUtilsOdontosis;
import com.odontosis.view.OdontosisForm;

/**
 * Form para Login
 * @author pablo
 *
 */
public class FormParametros extends OdontosisForm {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private String parcelasGerar;
	
	private String tipoImpressao;
	
	private String enderecoImpressora;

	
	public List<TipoImpressao> getColecaoTipoImpressao() {
		return Arrays.asList(TipoImpressao.values());
	}
	
	public String getParcelasGerar() {
		return parcelasGerar;
	}

	public String getTipoImpressao() {
		return tipoImpressao;
	}

	public String getEnderecoImpressora() {
		return enderecoImpressora;
	}

	public void setParcelasGerar(String parcelasGerar) {
		this.parcelasGerar = parcelasGerar;
	}

	public void setTipoImpressao(String tipoImpressao) {
		this.tipoImpressao = tipoImpressao;
	}

	public void setEnderecoImpressora(String enderecoImpressora) {
		this.enderecoImpressora = enderecoImpressora;
	}

	@Override
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		ActionErrors errors = new ActionErrors();
		ActionMessages messages = new ActionMessages();
		Collection<String> erros = null;

//		if((StringUtilsOdontosis.isVazia(getEnderecoImpressora()))){
//			messages.add("enderecoImpressora", new ActionMessage("O endereço da impressora deve ser informado."));
//		}
		
		if((StringUtilsOdontosis.isVazia(getTipoImpressao()))){
			messages.add("enderecoImpressora", new ActionMessage("O Tipo da impressão deve ser informado"));
		}
		
		if((StringUtilsOdontosis.isVazia(getParcelasGerar()))){
			messages.add("enderecoImpressora", new ActionMessage("A quantidade de parcelas a gerar deve ser informada."));
		} else {
			if(!StringUtilsOdontosis.isInteger(getParcelasGerar())) {
				messages.add("enderecoImpressora", new ActionMessage("A quantidade de parcelas a gerar deve ser um número inteiro."));
			}
		}


		if (messages.size() > 0 && getMetodo() != null) {
			errors.add(messages);
			erros = new ArrayList<String>();
			for (Iterator iterator = messages.get(); iterator.hasNext();) {
				ActionMessage string = (ActionMessage) iterator.next();
				erros.add(string.getKey());
			}
			request.setAttribute("mensagens", erros);
			return errors;
		} else {
			request.setAttribute("mensagens", null);
			return super.validate(mapping, request);
		}

	}

	
}
